/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sistemabienes;

import claseactivos.DatosAsignacion;
import claseactivos.DatosDevolucion;
import com.sun.data.provider.RowKey;
import com.sun.data.provider.impl.CachedRowSetDataProvider;
import com.sun.rave.web.ui.appbase.AbstractSessionBean;
import com.sun.sql.rowset.CachedRowSetXImpl;
import java.io.IOException;
import java.sql.CallableStatement;
//import java.sql.ResultSet;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import java.util.Date;
import javax.faces.FacesException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import claseactivos.DatosAsignacionDataProvider;
import claseactivos.DatosDevolucionDataProvider;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.FontKey;  
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.PdfFont;


/**
 * <p>Session scope data bean for your application.  Create properties
 *  here to represent cached data that should be made available across
 *  multiple HTTP requests for an individual user.</p>
 *
 * <p>An instance of this class will be created for you automatically,
 * the first time your application evaluates a value binding expression
 * or method binding expression that references a managed bean using
 * this class.</p>
 *
 * @version SessionBean1.java
 * @version Created on 15-09-2010, 03:45:40 PM
 * @author luis
 */

public class SessionBean1 extends  AbstractSessionBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    
        usuarioRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        usuarioRowSet.setCommand("SELECT * FROM activos.usuario");
        usuarioRowSet.setTableName("usuario");
        usuarioDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet) getValue("#{SessionBean1.usuarioRowSet}"));

        ufvRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
       // ufvRowSet.setCommand("SELECT ALL ACTIVOS_FIJOS.UFV.COD_UFV, ACTIVOS_FIJOS.UFV.VALOR_UFV, ACTIVOS_FIJOS.UFV.FECHA  FROM ACTIVOS_FIJOS.UFV ORDER BY ACTIVOS_FIJOS.UFV.COD_UFV ASC");
        ufvRowSet.setCommand("SELECT key_ufv,ufv,to_char(fecha,'DD-MM-YYYY') as fecha FROM ACTIVOS.COTIZACION order by fecha asc");
      // ufvRowSet.setCommand("select cod_ufv,valor_ufv,to_char(fecha,'DD-MM-YYYY') as fecha, case when cod_ufv >= 17 then 'color: #ff3333; font-weight: bold' else 'poco' end  from ufv order by cod_ufv asc");
        ufvRowSet.setTableName("COTIZACION");
        //ufvDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet) getValue("#{SessionBean1.ufvRowSet}"));
        //String columnTableNames[] = {"BORRAR","KEYGRUPO","DESCRIPCION","PARTIDA","DESCRIPCION_P","ANYOS","SE_DEPRECIA","SE_ACTUALIZA","PORCENT_ANYO","PORCENT_MES"};
        //select_temp_gruposRowSet.setColumnTableNames(columnTableNames);
        select_temp_gruposRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        select_temp_gruposRowSet.setCommand("SELECT * FROM ACTIVOS.SESION_TEMP_GRUPOS");
        select_temp_gruposRowSet.setTableName("SESION_TEMP_GRUPOS");
        select_temp_gruposDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet) getValue("#{SessionBean1.select_temp_gruposRowSet}"));

        sesion_temp_gruposRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        sesion_temp_gruposRowSet.setCommand("SELECT * FROM ACTIVOS.GRUPOS_CONTABLES");
        sesion_temp_gruposRowSet.setTableName("GRUPOS_CONTABLES");

       

        activoRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activoRowSet.setCommand("SELECT * FROM ACTIVOS.ACTIVO where estado_baja=0 and estado_asignacion=0 order by fecha_ingreso desc");
        activoRowSet.setTableName("ACTIVO");
        actualizacionesRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        actualizacionesRowSet.setCommand("SELECT * FROM ACTIVOS.ACTUALIZACIONES");
        actualizacionesRowSet.setTableName("ACTUALIZACIONES");
        empleadosRowSet.setDataSourceName("java:comp/env/jdbc/TIQUEO_Oracle");
        empleadosRowSet.setCommand("SELECT TIQUEO.KEYEMPLEADO FROM TIQUEO.EMPLEADOS ");
        empleadosRowSet.setTableName("EMPLEADOS");
        controleRowSet.setDataSourceName("java:comp/env/jdbc/TIQUEO_Oracle");
        controleRowSet.setCommand("SELECT * FROM TIQUEO.CONTROLE");
        controleRowSet.setTableName("CONTROLE");
        usuarioRowSet1.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        usuarioRowSet1.setCommand("SELECT * FROM ACTIVOS.USUARIO");
        usuarioRowSet1.setTableName("USUARIO");
        activo_registroRowSet1.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activo_registroRowSet1.setCommand("SELECT * FROM ACTIVOS.ACTIVO order by fecha_ingreso desc");
        activo_registroRowSet1.setTableName("ACTIVO");
        //activoRowSet.setInt(1, getSeccion());
        
        grupos_contablesRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        grupos_contablesRowSet.setCommand("SELECT * FROM ACTIVOS.GRUPOS_CONTABLES");
        grupos_contablesRowSet.setTableName("GRUPOS_CONTABLES");

        empleadosRowSet1.setDataSourceName("java:comp/env/jdbc/TIQUEO_Oracle");
       // empleadosRowSet1.setCommand("SELECT EMPLEADOS.KEYEMPLEADO,EMPLEADOS.CI,EMPLEADOS.PATERNO,EMPLEADOS.MATERNO FROM TIQUEO.EMPLEADOS");
        empleadosRowSet1.setCommand("SELECT emp.KEYEMPLEADO,emp.NOMBRE,emp.PATERNO,emp.MATERNO,emp.CI,uni.UNIDAD,ca.CARGO FROM EMPLEADOS emp,CONTROLINTERNO cin,UNIDADES uni,CARGOS ca WHERE emp.KEYEMPLEADO = cin.KEYEMPLEADO AND cin.KEYCARGO= ca.KEYCARGO AND uni.KEYUNIDAD= cin.KEYUNIDAD and cin.fechaconclusion is null;");
        empleadosRowSet1.setTableName("EMPLEADOS");
        //AsignacionRowset

        asignacionRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        asignacionRowSet.setCommand("select key_asignacion,keyseccion,keypersona,keybien,cod_bien,estado,fecha_asig,doc_identidad from asignacion");
        asignacionRowSet.setTableName("ASIGNACION");
        asignacionBuscarRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        asignacionBuscarRowSet.setCommand("select keybien,cod_bien,estado,fecha_asig,doc_identidad from asignacion");
        asignacionBuscarRowSet.setTableName("ASIGNACION");
        ////
        encargadoRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        encargadoRowSet.setCommand("SELECT * FROM ACTIVOS.ENCARGADO");
        encargadoRowSet.setTableName("ENCARGADO");
        usuarioRowSet2.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        usuarioRowSet2.setCommand("SELECT * FROM ACTIVOS.USUARIO");
        usuarioRowSet2.setTableName("USUARIO");
        activoBuscarRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activoBuscarRowSet.setCommand("SELECT ACTIVO.COD_BIEN,ACTIVO.KEYBIEN,ACTIVO.KEYSECCION,ACTIVO.KEYPARTIDA,ACTIVO.DESCRIPCION,ACTIVO.TIEMPO_VIDA_INICIO,ACTIVO.VALOR_INI,ACTIVO.NRO_SERIE,ACTIVO.NOMBRE,ACTIVO.TIEMPO_VIDA_TEMP,ACTIVO.VALOR_ACT_TEMP,ACTIVO.UFV_TEMP,ACTIVO.TOTAL_DEP_ACUM_TEMP,ACTIVO.ESTADO_BAJA,ACTIVO.ESTADO_ASIGNACION,ACTIVO.FECHA_INGRESO,to_char(ACTIVO.FECHA_ADQUISICION,'DD-MM-YYYY') as FECHA_ADQUISICION,ACTIVO.UFV_INI,ACTIVO.KEYTIPO,ACTIVO.FECHA_DEPREC_TEMP,ACTIVO.EST_BANDEJA FROM ACTIVO where cod_bien like '-1' order by fecha_ingreso desc");
        activoBuscarRowSet.setTableName("ACTIVO");
        asignacionDevolucionRowSet1.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        asignacionDevolucionRowSet1.setCommand("select activo.cod_bien,activo.descripcion,activo.keybien,asignacion.doc_identidad from asignacion ,activo  where asignacion.cod_bien=ACTIVO.cod_bien and asignacion.doc_identidad='-1' and asignacion.estado=1 ");
        devolucionRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        devolucionRowSet.setCommand("SELECT * FROM ACTIVOS.DEVOLUCION");
        devolucionRowSet.setTableName("DEVOLUCION");
        activoBajaRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activoBajaRowSet.setCommand("SELECT * FROM ACTIVOS.ACTIVO where estado_baja=1 and cod_bien like '%%'");
        activoBajaRowSet.setTableName("ACTIVO");
        //asignacionDevolucionRowSet1.setTableName("ASIGNACION");
         rolesRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        rolesRowSet.setCommand("SELECT * FROM activos.asignacion_rol");
        rolesRowSet.setTableName("asignacion_rol");
        rolesDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet) getValue("#{SessionBean1.rolesRowSet}"));
        usuarioRowSet3.setDataSourceName("java:comp/env/jdbc/USUARIO_Oracle");
        usuarioRowSet3.setCommand("SELECT * FROM USUARIO.USUARIO");
        usuarioRowSet3.setTableName("USUARIO");
        activo_BuscarSaludRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activo_BuscarSaludRowSet.setCommand("SELECT ACTIVO_SALUD.COD_BIEN,ACTIVO_SALUD.KEYBIEN,ACTIVO_SALUD.KEYSECCION,ACTIVO_SALUD.KEYPARTIDA,ACTIVO_SALUD.DESCRIPCION,ACTIVO_SALUD.TIEMPO_VIDA_INICIO,ACTIVO_SALUD.VALOR_INI,ACTIVO_SALUD.NRO_SERIE,ACTIVO_SALUD.NOMBRE,ACTIVO_SALUD.TIEMPO_VIDA_TEMP,ACTIVO_SALUD.VALOR_ACT_TEMP,ACTIVO_SALUD.UFV_TEMP,ACTIVO_SALUD.TOTAL_DEP_ACUM_TEMP,ACTIVO_SALUD.ESTADO_BAJA,ACTIVO_SALUD.ESTADO_ASIGNACION,ACTIVO_SALUD.FECHA_INGRESO,to_char(ACTIVO_SALUD.FECHA_ADQUISICION,'DD-MM-YYYY') as FECHA_ADQUISICION,ACTIVO_SALUD.UFV_INI,ACTIVO_SALUD.KEYTIPO,ACTIVO_SALUD.FECHA_DEPREC_TEMP,ACTIVO_SALUD.EST_BANDEJA FROM ACTIVO_SALUD where cod_bien like '-1' order by fecha_ingreso desc");

        activo_BuscarSaludRowSet.setTableName("ACTIVO_SALUD");
        activo_saludRowSet1.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activo_saludRowSet1.setCommand("SELECT * FROM ACTIVOS.ACTIVO_SALUD order by fecha_ingreso desc");
        activo_saludRowSet1.setTableName("ACTIVO_SALUD");
        activo_BuscarSaludRowSet2.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activo_BuscarSaludRowSet2.setCommand("SELECT ACTIVO_SALUD.COD_BIEN,ACTIVO_SALUD.KEYBIEN,ACTIVO_SALUD.KEYSECCION,ACTIVO_SALUD.KEYPARTIDA,ACTIVO_SALUD.DESCRIPCION,ACTIVO_SALUD.TIEMPO_VIDA_INICIO,ACTIVO_SALUD.VALOR_INI,ACTIVO_SALUD.NRO_SERIE,ACTIVO_SALUD.NOMBRE,ACTIVO_SALUD.TIEMPO_VIDA_TEMP,ACTIVO_SALUD.VALOR_ACT_TEMP,ACTIVO_SALUD.UFV_TEMP,ACTIVO_SALUD.TOTAL_DEP_ACUM_TEMP,ACTIVO_SALUD.ESTADO_BAJA,ACTIVO_SALUD.ESTADO_ASIGNACION,ACTIVO_SALUD.FECHA_INGRESO,to_char(ACTIVO_SALUD.FECHA_ADQUISICION,'DD-MM-YYYY') as FECHA_ADQUISICION,ACTIVO_SALUD.UFV_INI,ACTIVO_SALUD.KEYTIPO,ACTIVO_SALUD.FECHA_DEPREC_TEMP,ACTIVO_SALUD.EST_BANDEJA FROM ACTIVO_SALUD where cod_bien like '-1' order by fecha_ingreso desc");
        activo_BuscarSaludRowSet2.setTableName("ACTIVO_SALUD");
        activos_educacionRowSet.setDataSourceName("java:comp/env/jdbc/ACTIVOS_Oracle");
        activos_educacionRowSet.setCommand("SELECT * FROM ACTIVOS.ACTIVOS_EDUCACION");
        activos_educacionRowSet.setTableName("ACTIVOS_EDUCACION");

     


    }
    //////////////////
   /* public CachedRowSetDataProvider activoDataProvider = new CachedRowSetDataProvider();

    public CachedRowSetDataProvider getActivoDataProvider() {
        return activoDataProvider;
    }

    public void setActivoDataProvider(CachedRowSetDataProvider crsdp) {
        this.activoDataProvider = crsdp;
    }
    
    public CachedRowSetXImpl activosRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivosRowSet() {
        return activosRowSet;
    }

    public void setActivosRowSet(CachedRowSetXImpl crsxi) {
        this.activosRowSet = crsxi;
    }*/
    // </editor-fold>
        private CachedRowSetDataProvider usuarioDataProvider = new CachedRowSetDataProvider();

    public CachedRowSetDataProvider getUsuarioDataProvider() {
        return usuarioDataProvider;
    }

    public void setUsuarioDataProvider(CachedRowSetDataProvider crsdp) {
        this.usuarioDataProvider = crsdp;
    }
private CachedRowSetDataProvider ufvDataProvider = new CachedRowSetDataProvider();

    public CachedRowSetDataProvider getufvDataProvider() {
        return ufvDataProvider;
    }

    public void setufvDataProvider(CachedRowSetDataProvider crsdp) {
        this.ufvDataProvider = crsdp;
    }
    
  
    private CachedRowSetXImpl usuarioRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getUsuarioRowSet() {
        return usuarioRowSet;
    }

    public void setUsuarioRowSet(CachedRowSetXImpl crsxi) {
        this.usuarioRowSet = crsxi;
    }
    public CachedRowSetXImpl ufvRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getUfvRowSet() {
        return ufvRowSet;
    }

    public void setUfvRowSet(CachedRowSetXImpl crsxi) {
        this.ufvRowSet = crsxi;
    }
    public CachedRowSetXImpl sesion_temp_gruposRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getSesion_temp_gruposRowSet() {
        return sesion_temp_gruposRowSet;
    }

    public void setSesion_temp_gruposRowSet(CachedRowSetXImpl crsxi) {
        this.sesion_temp_gruposRowSet = crsxi;
    }
    private CachedRowSetXImpl select_temp_gruposRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getSelect_temp_gruposRowSet() {
        return select_temp_gruposRowSet;
    }

    public void setSelect_temp_gruposRowSet(CachedRowSetXImpl crsxi) {
        this.select_temp_gruposRowSet = crsxi;
    }
    
    public CachedRowSetXImpl activoRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivoRowSet() {
        return activoRowSet;
    }

    public void setActivoRowSet(CachedRowSetXImpl crsxi) {
        this.activoRowSet = crsxi;
    }

public CachedRowSetDataProvider select_temp_gruposDataProvider = new CachedRowSetDataProvider();

    public CachedRowSetDataProvider getSelect_temp_gruposDataProvider() {
        return select_temp_gruposDataProvider;
    }

    public void setSelect_temp_gruposDataProvider(CachedRowSetDataProvider crsdp) {
        this.select_temp_gruposDataProvider = crsdp;
    }
    private CachedRowSetXImpl actualizacionesRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActualizacionesRowSet() {
        return actualizacionesRowSet;
    }

    public void setActualizacionesRowSet(CachedRowSetXImpl crsxi) {
        this.actualizacionesRowSet = crsxi;
    }
    private CachedRowSetXImpl empleadosRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getEmpleadosRowSet() {
        return empleadosRowSet;
    }

    public void setEmpleadosRowSet(CachedRowSetXImpl crsxi) {
        this.empleadosRowSet = crsxi;
    }
    private CachedRowSetXImpl controleRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getControleRowSet() {
        return controleRowSet;
    }

    public void setControleRowSet(CachedRowSetXImpl crsxi) {
        this.controleRowSet = crsxi;
    }
    private CachedRowSetXImpl usuarioRowSet1 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getUsuarioRowSet1() {
        return usuarioRowSet1;
    }

    public void setUsuarioRowSet1(CachedRowSetXImpl crsxi) {
        this.usuarioRowSet1 = crsxi;
    }
    private CachedRowSetXImpl activo_registroRowSet1 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivo_registroRowSet1() {
        return activo_registroRowSet1;
    }

    public void setActivo_registroRowSet1(CachedRowSetXImpl crsxi) {
        this.activo_registroRowSet1 = crsxi;
    }
    private CachedRowSetXImpl grupos_contablesRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getGrupos_contablesRowSet() {
        return grupos_contablesRowSet;
    }

    public void setGrupos_contablesRowSet(CachedRowSetXImpl crsxi) {
        this.grupos_contablesRowSet = crsxi;
    }
    private CachedRowSetXImpl empleadosRowSet1 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getEmpleadosRowSet1() {
        return empleadosRowSet1;
    }

    public void setEmpleadosRowSet1(CachedRowSetXImpl crsxi) {
        this.empleadosRowSet1 = crsxi;
    }
    ///asignacion/
    public CachedRowSetXImpl asignacionRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getAsignacionRowSet() {
        return asignacionRowSet;
    }

    public void setAsignacionRowSet(CachedRowSetXImpl crsxi) {
        this.asignacionRowSet = crsxi;
    }
    public CachedRowSetXImpl asignacionBuscarRowSet = new CachedRowSetXImpl();
     /**
     * @return the asignacionBuscarRowSet
     */
    public CachedRowSetXImpl getAsignacionBuscarRowSet() {
        return asignacionBuscarRowSet;
    }

    /**
     * @param asignacionBuscarRowSet the asignacionBuscarRowSet to set
     */
    public void setAsignacionBuscarRowSet(CachedRowSetXImpl crsxi) {
        this.asignacionBuscarRowSet = crsxi;
    }
    
   //////////
    private CachedRowSetXImpl encargadoRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getEncargadoRowSet() {
        return encargadoRowSet;
    }
    
    /////
    public void setEncargadoRowSet(CachedRowSetXImpl crsxi) {
        this.encargadoRowSet = crsxi;
    }
    private CachedRowSetXImpl usuarioRowSet2 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getUsuarioRowSet2() {
        return usuarioRowSet2;
    }

    public void setUsuarioRowSet2(CachedRowSetXImpl crsxi) {
        this.usuarioRowSet2 = crsxi;
    }
    private CachedRowSetXImpl activoBuscarRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivoBuscarRowSet() {
        return activoBuscarRowSet;
    }

    public void setActivoBuscarRowSet(CachedRowSetXImpl crsxi) {
        this.activoBuscarRowSet = crsxi;
    }
    private CachedRowSetXImpl asignacionDevolucionRowSet1 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getAsignacionDevolucionRowSet1() {
        return asignacionDevolucionRowSet1;
    }

    public void setAsignacionDevolucionRowSet1(CachedRowSetXImpl crsxi) {
        this.asignacionDevolucionRowSet1 = crsxi;
    }
    private CachedRowSetXImpl devolucionRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getDevolucionRowSet() {
        return devolucionRowSet;
    }

    public void setDevolucionRowSet(CachedRowSetXImpl crsxi) {
        this.devolucionRowSet = crsxi;
    }
    private CachedRowSetXImpl activoBajaRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivoBajaRowSet() {
        return activoBajaRowSet;
    }

    public void setActivoBajaRowSet(CachedRowSetXImpl crsxi) {
        this.activoBajaRowSet = crsxi;
    }
//Variables roles
    private CachedRowSetXImpl rolesRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getRolesRowSet() {
        return rolesRowSet;
    }

    public void setRolesRowSet(CachedRowSetXImpl crsxi) {
        this.rolesRowSet = crsxi;
    }
    public CachedRowSetDataProvider rolesDataProvider = new CachedRowSetDataProvider();

    public CachedRowSetDataProvider getRolesDataProvider() {
        return rolesDataProvider;
    }

    public void setRolesDataProvider(CachedRowSetDataProvider crsdp) {
        this.rolesDataProvider = crsdp;
    }
    private CachedRowSetXImpl usuarioRowSet3 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getUsuarioRowSet3() {
        return usuarioRowSet3;
    }

    public void setUsuarioRowSet3(CachedRowSetXImpl crsxi) {
        this.usuarioRowSet3 = crsxi;
    }
    private CachedRowSetXImpl activo_BuscarSaludRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivo_saludRowSet() {
        return activo_BuscarSaludRowSet;
    }

    public void setActivo_saludRowSet(CachedRowSetXImpl crsxi) {
        this.activo_BuscarSaludRowSet = crsxi;
    }
    private CachedRowSetXImpl activo_saludRowSet1 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivo_saludRowSet1() {
        return activo_saludRowSet1;
    }

    public void setActivo_saludRowSet1(CachedRowSetXImpl crsxi) {
        this.activo_saludRowSet1 = crsxi;
    }
    private CachedRowSetXImpl activo_BuscarSaludRowSet2 = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivo_BuscarSaludRowSet2() {
        return activo_BuscarSaludRowSet2;
    }

    public void setActivo_BuscarSaludRowSet2(CachedRowSetXImpl crsxi) {
        this.activo_BuscarSaludRowSet2 = crsxi;
    }
    private CachedRowSetXImpl activos_educacionRowSet = new CachedRowSetXImpl();

    public CachedRowSetXImpl getActivos_educacionRowSet() {
        return activos_educacionRowSet;
    }

    public void setActivos_educacionRowSet(CachedRowSetXImpl crsxi) {
        this.activos_educacionRowSet = crsxi;
    }

    

 
    
    /**
     * <p>Construct a new session data bean instance.</p>
     */


    public SessionBean1() {
    }

    /**
     * <p>This method is called when this bean is initially added to
     * session scope.  Typically, this occurs as a result of evaluating
     * a value binding or method binding expression, which utilizes the
     * managed bean facility to instantiate this bean and store it into
     * session scope.</p>
     * 
     * <p>You may customize this method to initialize and cache data values
     * or resources that are required for the lifetime of a particular
     * user session.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass

        super.init();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here
        
        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("SessionBean1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
        }
        
        // </editor-fold>
        // Perform application initialization that must complete
        // *after* managed components are initialized
        // TODO - add your own initialization code here
    }

    /**
     * <p>This method is called when the session containing it is about to be
     * passivated.  Typically, this occurs in a distributed servlet container
     * when the session is about to be transferred to a different
     * container instance, after which the <code>activate()</code> method
     * will be called to indicate that the transfer is complete.</p>
     * 
     * <p>You may customize this method to release references to session data
     * or resources that can not be serialized with the session itself.</p>
     */
    @Override
    public void passivate() {
    }

    /**
     * <p>This method is called when the session containing it was
     * reactivated.</p>
     * 
     * <p>You may customize this method to reacquire references to session
     * data or resources that could not be serialized with the
     * session itself.</p>
     */
    @Override
    public void activate() {
    }

    /**
     * <p>This method is called when this bean is removed from
     * session scope.  Typically, this occurs as a result of
     * the session timing out or being terminated by the application.</p>
     * 
     * <p>You may customize this method to clean up resources allocated
     * during the execution of the <code>init()</code> method, or
     * at any later time during the lifetime of the application.</p>
     */
    @Override
    public void destroy() {
        rolesDataProvider.close();
    }
    
    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }
    
    private boolean Loged=false;
 public boolean isloged()
 {
     return Loged;
 }
 public void setloget(boolean xLoged)
 {
    this.Loged=xLoged;
 }
 private String usuario;  

 public String getUsuario()
{
    return usuario;
}
public void setUsuario(String user)
{
    this.usuario=user;
}
List<Integer> roles = new ArrayList<Integer>();

   /**
     * @return the roles
     */
    public List getRoles() {
        return roles;
    }

    /**
     * @param roles the roles to set
     */
    public void setRoles(List roles) {
        this.roles = roles;
    }
    public boolean login(String login, String passw) throws NamingException, SQLException, ParseException, IOException {
    
                
                String[] params = {"NOMBRE_USUARIO","PASSWORD"};
                Object[] values = {login,passw};
                usuarioDataProvider.refresh();
                rolesDataProvider.refresh();
                //usuarioDataProvider.cursorFirst();
                
                RowKey row = usuarioDataProvider.findFirst(params,values);
                if(row==null)
                {
                    return false;
                }else{
                    int cont=0, listaroles;
                    
                    String user=usuarioDataProvider.getValue("NOMBRE_USUARIO", row).toString();
                    String keyuser=usuarioDataProvider.getValue("KEYUSUARIO", row).toString();
                    int secc=Integer.parseInt(usuarioDataProvider.getValue("SECCION",row).toString());
                    switch(secc) {
                     case 1:
                         this.setNombreSector("Institucional");
                         break;
                     case 2:
                         this.setNombreSector("Salud");
                         break;
                     case 3:
                        this.setNombreSector("Educacion");
                         break;
                                default:

                             break;
                         }
                    this.setSeccion(secc);
                    this.setUsuario(user);
                    //cargando roles
                    rolesRowSet.setCommand("select * from asignacion_rol where keyusuario=?");
                    rolesRowSet.setString(1,keyuser);
                    rolesDataProvider.cursorFirst();
                    do{
                        listaroles=Integer.parseInt(rolesDataProvider.getValue("KEYROL").toString());
                        roles.add(listaroles);
                     }while(rolesDataProvider.cursorNext());
                     //usuarioDataProvider.close();
                     //rolesDataProvider.close();
                    return true;
                }
            
                 //String pas = rs1.getString(1);
                 //HttpServletResponse res = null;
                //res.sendRedirect("/web/Page1.jsp");
                 
             
                //HttpServletResponse res = null;
                //res.sendRedirect("/web/resources/login.jsp");
        
        
    }
      public boolean ufv() throws NamingException, SQLException, ParseException, IOException {


                String[] params = {"NOMBRE_USUARIO","PASSWORD"};
                Object[] values = {};
                usuarioDataProvider.refresh();

                RowKey row = usuarioDataProvider.findFirst(params,values);
                if(row==null)
                {
                    return false;
                }else{

                  this.setUsuario(usuarioDataProvider.getValue("NOMBRE_USUARIO", row).toString());
                  this.setSeccion(1);
                    return true;
                }
    }

     public String cv=new String();
  public String getcv() {
        return cv;
    }

    public void setcv(String s) {
        this.cv = s;

    }

    public String getFecha() {
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
        return format.format(date);
    }
////////////// Data providers de package

    private DatosDevolucionDataProvider devolucionDataProviver = new DatosDevolucionDataProvider();
    private DatosAsignacionDataProvider asignacionDataProviver = new DatosAsignacionDataProvider();

    /**
     * @return the asignacionDataProviver
     */
    public DatosAsignacionDataProvider getAsignacionDataProviver() {
        return asignacionDataProviver;
    }

    /**
     * @param asignacionDataProviver the asignacionDataProviver to set
     */
    public void setAsignacionDataProviver(DatosAsignacionDataProvider asignacionDataProviver) {
        this.asignacionDataProviver = asignacionDataProviver;
    }
 /**
     * @return the devolucionDataProviver
     */
    public DatosDevolucionDataProvider getDevolucionDataProviver() {
        return devolucionDataProviver;
    }

    /**
     * @param devolucionDataProviver the devolucionDataProviver to set
     */
    public void setDevolucionDataProviver(DatosDevolucionDataProvider devolucionDataProviver) {
        this.devolucionDataProviver = devolucionDataProviver;
    }
    ///////////variable para asignar
        private int seccion;

    /**
     * @return the seccion
     */
    public int getSeccion() {
        return seccion;
    }

    /**
     * @param seccion the seccion to set
     */
    public void setSeccion(int seccion) {
        this.seccion = seccion;
    }
private boolean ufvUsuario=true;

    /**
     * @return the ufv
     */
    public boolean isUfvUsuario() {
        return ufvUsuario;
    }

    /**
     * @param ufv the ufv to set
     */
    public void setUfvUsuario(boolean ufv) {
        this.ufvUsuario = ufv;
    }

   
            


     private String valorufv;
    /**
     * @return the valorufv
     */

    public String getValorufv() {


        

        return valorufv;
    }

    /**
     * @param valorufv the valorufv to set
     */
    public void setValorufv(String valorufv) {
        this.valorufv = valorufv;
    }

    private Connection conn;
   public void jasperReport(String tipo, Map<String, Object> params, String file) throws ClassNotFoundException {
        ExternalContext econtext = getExternalContext();
        InputStream inputStream = ApplicationBean1.class.getResourceAsStream("/sistemabienes/" + file);
        if (inputStream == null) {
            throw new ClassNotFoundException("Archivo " + file + " no se encontró");
        }
        FacesContext fcontext = FacesContext.getCurrentInstance();
        try {
            JRExporter exporter = null;
            if (conn == null || conn.isClosed()) {
                Context ctx = new InitialContext();
                DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/ACTIVOS_Oracle");
                conn = ds.getConnection();
            }

            JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, params, conn);
            HttpServletResponse response = (HttpServletResponse) econtext.getResponse();
            HttpServletRequest request = (HttpServletRequest) econtext.getRequest();
            response.setContentType(tipo);
            if ("application/pdf".equals(tipo)) {
                exporter = new JRPdfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
                Map fontMap = new HashMap();
                
               FontKey key = new FontKey("Arial", false, false);
               PdfFont font = new PdfFont("Helvetica", "Cp1252", false);
                fontMap.put(key, font);

                key = new FontKey("Arial", true, false);
                font = new PdfFont("Helvetica-Bold", "Cp1252", false);
                fontMap.put(key, font);
                key = new FontKey("Arial", true, true);
                font = new PdfFont("Helvetica-BoldOblique", "Cp1252", false);
                fontMap.put(key, font);
                key = new FontKey("Arial", false, true);
                font = new PdfFont("Helvetica-Oblique", "Cp1252", false);
                fontMap.put(key, font);
                
                exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
            } else if ("text/html".equals(tipo)) {
                exporter = new JRHtmlExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, response.getWriter());
                exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath() + "/image?image=");
            } else if ("application/msword".equals(tipo)) {
                exporter = new JRRtfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
            } else if ("application/excel".equals(tipo)) {
                exporter = new JRXlsExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
            }
            if (exporter != null) {
                exporter.exportReport();
            }
            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (Exception ex) {
            throw new FacesException(ex);
        }
        fcontext.responseComplete();
    }

   public void jasperReport_sinBD(String tipo, Map<String, Object> params, String file) throws ClassNotFoundException {
        ExternalContext econtext = getExternalContext();
        InputStream inputStream = ApplicationBean1.class.getResourceAsStream("/sistemabienes/" + file);
        if (inputStream == null) {
            throw new ClassNotFoundException("Archivo " + file + " no se encontró");
        }
        FacesContext fcontext = FacesContext.getCurrentInstance();
        try {
            JRExporter exporter = null;
            JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, params);
            HttpServletResponse response = (HttpServletResponse) econtext.getResponse();
            HttpServletRequest request = (HttpServletRequest) econtext.getRequest();
            response.setContentType(tipo);
            if ("application/pdf".equals(tipo)) {
                exporter = new JRPdfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());

                Map fontMap = new HashMap();
                FontKey key = new FontKey("Arial", false, false);
                PdfFont font = new PdfFont("Helvetica", "Cp1252", false);
                fontMap.put(key, font);
                
                key = new FontKey("Arial", true, false);
                font = new PdfFont("Helvetica-Bold", "Cp1252", false);
                fontMap.put(key, font);
                key = new FontKey("Arial", true, true);
                font = new PdfFont("Helvetica-BoldOblique", "Cp1252", false);
                fontMap.put(key, font);
                key = new FontKey("Arial", false, true);
                font = new PdfFont("Helvetica-Oblique", "Cp1252", false);
                fontMap.put(key, font);
                
                exporter.exportReport();
            } else if ("text/html".equals(tipo)) {
                exporter = new JRHtmlExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, response.getWriter());
                exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath() + "/image?image=");
            } else if ("application/msword".equals(tipo)) {
                exporter = new JRRtfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
            } else if ("application/excel".equals(tipo)) {
                exporter = new JRXlsExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
            }
            if (exporter != null) {
                exporter.exportReport();
            }
            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (Exception ex) {
            throw new FacesException(ex);
        }
        fcontext.responseComplete();
    }

   private String tipoReporte = "application/pdf";
   public String getTipoReporte() {
        return tipoReporte;
    }

    /**
     * @param tipoReporte the tipoReporte to set
     */
    public void setTipoReporte(String tipoReporte) {
        this.tipoReporte = tipoReporte;
    }

    private String nombreReporte;
    public String getNombreReporte() {
        return nombreReporte;
    }

    /**
     * @param nombreReporte the nombreReporte to set
     */
    public void setNombreReporte(String nombreReporte) {
        this.nombreReporte = nombreReporte;
    }
      private String ci;
    private String nombre;
    private String inst;
    private String unidad;

    /**
     * @return the ci
     */
    public String getCi() {
        return ci;
    }

    /**
     * @param ci the ci to set
     */
    public void setCi(String ci) {
        this.ci = ci;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the inst
     */
    public String getInst() {
        return inst;
    }

    /**
     * @param inst the inst to set
     */
    public void setInst(String inst) {
        this.inst = inst;
    }

    /**
     * @return the unidad
     */
    public String getUnidad() {
        return unidad;
    }

    /**
     * @param unidad the unidad to set
     */
    public void setUnidad(String unidad) {
        this.unidad = unidad;
    }
    
    private Date fechaInicio;
    public Date getFechaInicio() {
        return fechaInicio;
    }

    /**
     * @param fechaInicio the fechaInicio to set
     */
    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }
   private String nombreSector;

    /**
     * @return the nombreSector
     */
    public String getNombreSector() {
        return nombreSector;
    }

    /**
     * @param nombreSector the nombreSector to set
     */
    public void setNombreSector(String nombreSector) {
        this.nombreSector = nombreSector;
    }
    private String cod_barra;
    /**
     * @return the cod_barra
     */
    public String getCod_barra() {
        return cod_barra;
    }

    /**
     * @param cod_barra the cod_barra to set
     */
    public void setCod_barra(String cod_barra) {
        this.cod_barra = cod_barra;
    }
 

}
